package dao;

import hbt.HibernateUtil;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import dto.MateriaPrima;

public class MateriaPrimaDAO {
	
	private static SessionFactory sf;
	private static MateriaPrimaDAO instance;
	
	public static MateriaPrimaDAO getInstance() {
		if(instance == null){
			instance = new MateriaPrimaDAO();
			sf = HibernateUtil.getSessionFactory();
		}
		return instance;
	}
	
	@SuppressWarnings("unchecked")
	public List<dto.MateriaPrima> getMateriasPrimas(){
		Session session = sf.openSession();
		List<dto.MateriaPrima> lista = new ArrayList<dto.MateriaPrima>();
		try{
			lista = (List<dto.MateriaPrima>) session.createQuery("select new dto.MateriaPrima(Select m From MateriaPrima)").list();
			//ya esta en dto, no necesito pasar nada
		}catch (Exception e){
			e.printStackTrace();
		}
		return lista;
	}
	
	public ArrayList<String> getListaMateriasPrimas(){
		ArrayList<dto.MateriaPrima> listaObjeto = (ArrayList<MateriaPrima>) getMateriasPrimas();
		ArrayList<String> lista = new ArrayList<String>();
		for(int i = 0; i < listaObjeto.size(); i++){
			lista.add(listaObjeto.get(i).getDescripcion());
		}
		return lista;
	}
}